<!DOCTYPE html>
<html>
<head>
    <title>编辑游记</title>
    <meta charset="utf-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <link rel="stylesheet" href="/js/bootstrap/css/bootstrap.min.css">
    <script src="/js/jquery/jquery.min.js"></script>
    <script src="/js/bootstrap/js/bootstrap.min.js"></script>
    <script src="/js/plugins/jrender/jrender.js"></script>
    <link rel="stylesheet" href="/css/font/css/font-awesome.min.css" />
    <link rel="stylesheet" href="/css/reset.css" />
    <link rel="stylesheet" href="/css/userTravels.css" />
    <link rel="stylesheet" href="/js/plugins/dialog/dialog.css" />
    <script src="/js/plugins/dialog/dialog.min.js"></script>
    <script src="/js/plugins/jquery-form/jquery.form.js"></script>
    <script src="/js/plugins/My97DatePicker/WdatePicker.js"></script>
    <script src="/js/plugins/eleditor/Eleditor.min.js"></script>
    <script src="/js/plugins/eleditor/webuploader.min.js"></script>
    <script src="/js/common.js"></script>
    <script>
        $(function () {


            //页面加载完之后先发送个请求获取到所有的旅 游区域先
            $.get("/regions",function (data) {
                //循环返回过来的数据，一个个拼接到select中作为子节点
                $.each(data,function (index,item) {
                    $("<option></option>").val(item.id).html(item.name).appendTo($("#detailForm select[name='place.id']"));
                })
            })

            //在编辑界面先取到地址栏上带有的游记id
            var id = getParams().id;
            //进入编辑页面的时候就发送get请求，要判断有没有这个值先，因为新增也是用这个界面的
            if(id){
                $.get("/travels/"+id,function (data) {
                    console.log(data);
                    //数据拿到之后就进行回显
                    $(".travels").renderValues(data);
                    console.log(data.place.id);
                    //将id设置到表单中的隐藏域中去
                    $("#detailForm input[name='id']").val(id);
                })
            }

            var state = 0 ;//定义一个全局的变量，控制这个发布或者保存的状态
            //为表单设置提交的路径
            $("#detailForm").attr("action","/users/"+JSON.parse(sessionStorage.getItem("user")).id+"/travels");
            //保存按钮
            $("#save").click(function () {
                //保存这个按钮所导致的游记状态是草稿
                state = 0 ;
                //保存按钮，绑定点击事件，发送请求
                $("#detailForm").submit();
            })
            //发布按钮
            $("#release").click(function () {
                //保存这个按钮所导致的游记状态是发布，即是待审核
                state = 1 ;
                $("#detailForm").submit();
            })
            //将表单变为异步提交的表单
            $("#detailForm").ajaxForm({
                beforeSubmit:function (arr) {
                    //arr是存储表单中所有被提交参数的数据，可以往这个数组中添加额外的参数，发送到后台去
                    arr.push({name:"title",value:$("#title").val()});
                    arr.push({name:"coverUrl",value:$("#coverUrl").attr("src")});
                    arr.push({name:"travelcontent.content",value:Edr.getContent()});
                    arr.push({name:"state",value:state});
                    if(id){
                        //在提交表单的时候判断有没有id，有的话就是编辑的操作
                        arr.push({name:"_method",value:"PUT"});
                    }
                },
                success:function (data) {
                    //提交成功后的回调函数
                    $(document).dialog({
                        type : 'confirm',
                        titleText: "保存成功",
                        content: "点击确定跳往我的游记界面",
                        buttons: [
                            {
                                name: '确定',
                                callback: function() {
                                    location.href = "/mine/travels.html" ;
                                }
                            }
                        ]
                    });
                }
            })
            //富文本框
            var Edr = new Eleditor({
                el: "#contentEditor",
                upload:{
                    server: "/images",
                    formName:"pic"
                },
            });






            //给更换封面按钮绑定点击打开文本上传框的事件
            $("#changeBtn").click(function () {
                $("#imgForm input[name='pic']").click();
            })
            //更换封面的功能
            //给文本框绑定状态改变事件,当这个文本框的值发生改变才会去触发
            $("#imgForm input[name='pic']").change(function () {
                //判断这个文本框中有没有值
                if($("#imgForm input[name='pic']").val()){
                    //有值的话就发送请求，发送文件
                    $("#imgForm").ajaxSubmit(function (data) {
                        //因为设置了这个状态值，直接判断即可，保存失败的话是会返回0的，0在js当中好像是false
                        if(data.status){
                            //将文件返回的地址设置到指定的img文本框中去
                            $("#coverUrl").attr("src",data.url);
                            //如果要提交这个图片的路径保存到数据库中的话，还需要给表单设置隐藏域，将返回的url设置到隐藏域的value中
                        }else{
                            //保存失败的话即整个友好提示吧
                            $(document).dialog({
                                autoClose: 1500,
                                content: "你上传了什么图片，还TM保存失败了"
                            });
                        }
                    })
                }
            })
        })
    </script>

</head>

<body>
	<form id="imgForm" action="/images" method="post" enctype="multipart/form-data">
		<input type="file" name="pic" style="display: none;" accept="image/*"/>
	</form>

    <div class="search-head">
        <div class="row nav-search">
            <div class="col-2">
                <a href="javascript:window.history.go(-1);">
                    <span><i class="fa fa-times"></i></span>
                </a>
            </div>
            <div class="col-5"></div>
            <div class="col" style="text-align: right;">
                <i class="fa fa-floppy-o fg-fw" id="save"><span>保存</span></i>
                <i class="fa fa-check" id="release"><span>发布</span></i>
            </div>
        </div>
    </div>

    <div class="travels form-group">
        <div class="cover">
            <img id="coverUrl" width="100%" height="200px" render-src="coverUrl"/>
            <button type="button" class="btn" id="changeBtn">
                <i class="fa fa-pencil-square-o"></i>
                <small>更换封面</small>
            </button>
        </div>

        <div class="title">
            <input class="form-control" id="title" placeholder="请输入标题" render-value="title"/>
        </div>

        <h6 href="javascript:">点击文章内容即可编辑</h6>

		<!--富文本编辑器-->
        <div id="contentEditor" render-html="travelcontent.content"></div>

        <hr/>
        <div class="container">
            <form id="detailForm" method="post" >
                <input type="hidden" name="id" />
                <label>出行时间:</label>
                <!--出行时间这边就使用My97这个插件来实现时间框的选择-->
                <input type="text" name="travelTime"  class="form-control" render-value="travelTime" onclick="WdatePicker({readOnly:true,maxDate:new Date()})">
                <label>出行天数:</label>
                <input type="number" name="days" class="form-control" render-value="days">
                <label>参与人物:</label>
                <select class="c-select form-control" name="person" render-value="person">
                    <option value="1">一个人的旅行</option>
                    <option value="2">和父母</option>
                    <option value="3">和朋友</option>
                    <option value="4">和同事</option>
                    <option value="5">和爱人</option>
                    <option value="6">和驴友</option>
                </select>
                <label>人均费用:</label>
                <input type="text" name="perExpends" class="form-control" render-value="perExpends">

                <label>旅游地点:</label>
                <select class="form-control" name="place.id" render-value="place.id">

                </select>

                <div class="form-check">
                    <label class="form-check-label">
                        <input class="form-check-input" type="checkbox" name="isPublic" render-attr="checked=isPublic">是否公开
                    </label>
                </div>
            </form>
        </div>
        <hr/>
    </div>
</body>
</html>